---
title: Reporting.XDesignXElement
summary: API reference for Reporting.XDesignXElement.
status: draft
owner: SAIF Case Management
last_reviewed: 2026-08-21
library: SAIF.Services.Printing
reference_type: embedded
---

# Reporting.XDesignXElement

`XDesignXElement` inherits `SAIFXElement` (from the SAIF framework) and implements a custom XML-to-xPression-markup renderer with primary/foreign "key" propagation: elements added via `AddKey` are tracked as primary keys, and when the tree is rendered, every descendant element inherits ancestor keys as "foreign keys," emitting them as sibling tags ahead of its own children. This is the element-level engine behind `Reporting.XDesignXDocument.ToXpression()`.

## Purpose
- Track primary/foreign "key" relationships across an XML element tree so that xPression Design templates receive the key context they require at every nesting level.
- Render an element (and its descendants) into the proprietary tag format expected by xPression Design templates.

## Context
- Namespace: `SAIF.Services.Printing.Reporting`
- Assembly/package: `SAIF.Services.Printing` (embedded, front-end referenced)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `AddKey(...)` | `Public Sub AddKey(...)` | Registers this element as a primary key, so descendant elements will inherit it as a foreign key during rendering.* |
| Rendering method (invoked by `XDesignXDocument.ToXpression()`) | (internal to the class hierarchy) | Emits this element and its descendants in xPression markup, propagating ancestor keys as foreign-key sibling tags ahead of each element's own children.* |

## Inherited public members

Members in this section are inherited from `SAIFXElement` in `SAIF.BOF.Framework`. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Base `SAIFXElement` XML element members (e.g., attribute/child element access) | (inherited from `SAIFXElement`) | Provides the underlying `XElement`-like tree node that `XDesignXElement` extends with xPression-specific key propagation and markup rendering.† | `SAIF.BOF.Framework` — `SAIFXElement` |

## Behavioral notes
- The `Extensions` module in the same namespace (`ToSAIFXElement`/`ToSAIFXDocument`) converts plain `XElement`/`XDocument` trees into `XDesignXElement`/`XDesignXDocument` equivalents, providing an on-ramp from ordinary XML construction into this bespoke serialization scheme.*

## Constraints and usage notes
- This is a bespoke serialization scheme specific to the shape expected by xPression Design templates, not a generic XML utility.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with † were retrieved from dependency library documentation via the Legends CLI RAG
> service. They describe inherited behavior from the indicated origin library and should be
> verified if the dependency version changes.

## Sources
- `SAIF.Services.Printing\Reporting\XDesignXElement.vb`
